The client/server model of distributed computing operates to fulfill user needs by splitting functions between “client” tasks and “server” tasks performed by various computer hardware and software resources that are organized into a “network” for communication with each other, such as a local area network (“LAN”) or a wide area network (“WAN”) or the Internet. Using this model, a “client” program sends message requests to a “server” program in order to obtain data and/or processing action according to some communication “protocol” (i.e., a set of standard rules that determine how information is transmitted across a network) and the server completes the processing transaction by carrying out the request or deferring it to another time or by indicating that it cannot be fulfilled. This model allows clients and servers to be located (and to operate) independently of each other in a computer network, often using different hardware and operating systems appropriate to the function of each.
A “proxy server (or gateway)” is often used in handling client requests for transactions to be completed by other network “application servers” which are capable of performing the data processing actions required for the transaction but are not accessed directly by the client. If a processing transaction is not successfully completed upon initial transmission of a message, the client may send retransmissions of the message to an application server using an “arrayed cluster” (or group) of proxy servers. In that case, the cluster of proxy servers must route the retransmission(s) to the same application server as the original transmission, so that a retransmission is identical to the original transmission using the standards of RFC 3261. Current proxy server technology (such as that used with IBM WebSphere®) provides a partial solution to this problem by addressing (i.e., “hashing) the message to an array of application servers. This solution will work as long as the number (and the relative processing load(s) or “weight”) of each of the clustered application servers does not change. However, a retransmitted proxy message may be routed to a different application server than originally intended if a server starts (or stops) functioning between retransmissions of a message (or if the “weight” of one of the servers changes).